The present invention relates generally to software for controlling communications over computer networks such as the Internet, and more particularly to software which utilizes domain names to direct communications over the networks.
In accordance with conventional techniques for processing communications over the Internet, an Internet service provider (ISP), a corporation or another organization is assigned a domain name, e.g., provider.com. Network services associated with the organization, such as e-mail, hypertext transfer protocol (http) requests, file transfer protocol (ftp) requests, and network telephony, are hosted by servers of the organization. Communications addressed to the provider.com domain are resolved using the Domain Name System (DNS) to yield an Internet Protocol (IP) address of a particular host server, e.g., server1.provider.com, within the provider.com domain, and, optionally, a port number on that server. The IP addresses of these servers usually remain fixed for long periods of time. A service name can be specified as part of the domain name and resolved as part of the above-noted DNS process.
FIG. 1 illustrates the implementation of a conventional Internet e-mail service in a computer network. A sender computer 10 includes a mail program 14 which generates an e-mail message addressed to a user associated with a receiver computer 12, e.g., addressed to user@provider.com. The e-mail message is routed by the mail program 14 to a simple mail transfer protocol (SMTP) server 18 associated with an ISP 16 of the sender. The SMTP server 18 utilizes a DNS server 20 of the first ISP to generate a domain name query in order to determine the IP address for a mail server in the domain specified in the e-mail message. The DNS server 20 receives the necessary IP address information from another DNS server 24 associated with an ISP 22 of the receiver computer 12. The DNS server 20 delivers the IP address to the SMTP server 18, and the SMTP server 18 then establishes a connection with the server identified by the IP address, which in this example is assumed to be an SMTP server 26 associated with the ISP 22. The message is then transferred from the SMTP server 18 to the SMTP server 26, and the user accesses the message via a mail program 28 running on the receiver computer 12.
The SMTP servers 18, 26 and DNS servers 20, 24 operate in accordance with standards described in, for example, J. B. Postel, xe2x80x9cSimple Mail Transfer Protocol,xe2x80x9d RFC 821, Information Sciences Institute, University of Southern California, August 1982, and P. Mockapetris, xe2x80x9cDomain Namesxe2x80x94Implementation and Specification,xe2x80x9d RFC 1035, Information Sciences Institute, University of Southern California, November 1987, respectively, both of which are incorporated by reference herein.
As described in the above-cited references, conventional Internet e-mail systems based on SMTP utilize either mail exchange binding or mailbox binding. The operation of these two approaches will be illustrated for an e-mail message addressed to user@provider.com. In mail exchange binding, the SMTP server ignores the xe2x80x9cuserxe2x80x9d part of the address and sends DNS queries to obtain the IP address of the host server for the e-mail service, i.e., the SMTP server 26 of ISP 22 in the FIG. 1 example. The SMTP server then establishes an SMTP connection to the returned IP address. In this approach, the DNS server responsible for the domain will typically return the same IP address for all the users of the domain. The mailbox binding approach differs in that it encodes the user@provider.com address into a domain name user.provider.com and then sends DNS queries to obtain an IP address for a corresponding host server. Unfortunately, these and other conventional systems generally do not allow individual users to specify a particular server for processing their incoming e-mail messages.
Host servers for other network services available in the provider.com domain are identified in a similar manner. As in the case of e-mail services, a host server whose IP address is returned by the DNS is typically common to most or all the users within the domain. In other words, the provider.com domain uses the same server or servers to host a particular service for most or all of its users. As a result, e-mail messages addressed to user1@provider.com and user2@provider.com would both be resolved via the DNS process to point to the same e-mail server in the provider.com domain. Individual users in these and other conventional systems are thus generally unable to direct incoming e-mail messages or incoming communications of other services to a particular server of their choosing. Therefore, every user may be required to have their services, such as e-mail, home page, network telephone calls or other services, processed by the same server or servers that everyone else in the organization is using for these services. This can create problems for all of the users if, for example, the designated server or servers for a particular service become overloaded.
We have recognized that the problems with the prior art can be overcome by employing stored dynamic mappings to direct communications incoming to an Internet service provider (ISP) domain to a user-designated host server. Thus, the present invention allows individual users to specify particular servers for hosting network services provided to those users over computer networks. In an illustrative embodiment, an ISP assigns a personal host name to a particular user for each network service provided to that user. Each of the host names specify (a) the user, (b) a domain name of the ISP, and (c) the service, e.g., e-mail, homepage support, and network telephony. A dynamic mapping stored for each host name correlates the host name with an Internet Protocol (IP) address of a user-designated host server for the corresponding service. Advantageously, this avoids the above-noted problems associated with processing all incoming communications for all users on the same server or servers, and provides users with an ability to customize their network services by altering the mapping in a dynamic manner.
The stored dynamic mappings are used to ensure that incoming communications received in the ISP domain are directed to the appropriate user-designated host server. For example, a user may designate that all incoming e-mail messages directed to that user be processed by an SMTP server running on the user""s own personal computer. Alternatively, users may specify different host servers to be used at different times of the day or different days of the week, may direct that all incoming communications automatically be directed to their personal computer as long as it is on and connected to the ISP, or may direct that all incoming communications from particular originating locations be directed to certain host servers.
In accordance with the invention, when an address request for an incoming communication directed to a particular user arrives in a Domain Name System (DNS) server associated with the ISP domain, the stored mapping for the corresponding user and service is retrieved to obtain the appropriate IP address. This address is returned to the requesting DNS server associated with the sender ISP, and is used to establish a connection between the sender ISP and the user-designated host server for delivering the communication. The mapping may be stored in the DNS server associated with the ISP domain. Alternatively, the mapping may be stored in a dynamic location server (DLS) associated with the ISP domain, and retrieved from the DLS by the DNS server upon receipt of an address request in the DNS server. In accordance with an aspect of the invention, the IP address record returned to the requesting DNS in the domain of the sender ISP may be designated as non-cacheable, to insure that the latest dynamic mapping is utilized for each incoming communication.
The invention thus allows e-mail, homepages, network telephony and other network services for a given user to run on particular servers designated by that user. For each service provided within a domain, a different server can be designated to serve each user, and the designated server does not have to be physically located within the domain. Advantageously, the invention can be implemented using existing Internet naming and directory standards.